﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Insurance.ReadCard;

namespace Insurance.ReadCard
{
    public class PublicRead
    {
        public static string Get_HZYTH_卡号(ICReader.enum_读卡方式 enum读卡方式)
        {
            return Get_HZYTH_全部信息(enum读卡方式, "").KaHao;
        }

        public static string Get_HZYTH_卡号()
        {
            return Get_HZYTH_卡号(ICReader.enum_读卡方式.读卡片基本信息_无须PIN验证_1113);
        }

        public static CardFormat Get_HZYTH_全部信息(ICReader.enum_读卡方式 enum读卡方式, string pInput)
        {
            ICReader ic = new ICReader();
            CardFormat icData;
            if (enum读卡方式 == ICReader.enum_读卡方式.读卡片基本信息_无须PIN验证_1113 ||
                enum读卡方式 == ICReader.enum_读卡方式.扫码获取卡片基本信息_无须PIN验证_1115)
            {
                icData = ic.ReadIC(enum读卡方式, "");
            }
            else if (enum读卡方式 == ICReader.enum_读卡方式.获取卡片基本信息_无须PIN验证_1116 ||
                     enum读卡方式 == ICReader.enum_读卡方式.扫脸获取卡片基本信息_无须PIN验证_1119 ||
                     enum读卡方式 == ICReader.enum_读卡方式.获取卡片基本信息_无须PIN验证_卡令牌_1118)
            {
                icData = ic.ReadIC(enum读卡方式, pInput);
            }
            else
            {
                icData = ic.ReadIC(enum读卡方式, "123456");//需要PIN验证的默认密码为123456
            }

            return icData;
        }

        public static CardFormat Get_HZYTH_全部信息_扫电子凭证()
        {
            CardFormat hzythIc = Get_HZYTH_全部信息(ICReader.enum_读卡方式.扫电子凭证获取卡信息_1125, string.Empty);
            if (hzythIc.QuDaoDaiMa == "05")
            {
                //医保电子凭证，需要获取电子凭证信息
                hzythIc.DianZiPzxx = new ICReader().GetDzpzInfo(hzythIc.ErWeiMaId);
                if (!hzythIc.DianZiPzxx.InsuArea.StartsWith("3301"))
                {
                    hzythIc.CanBaoDiXzqhdm = hzythIc.DianZiPzxx.InsuArea;
                }
            }
            return hzythIc;
        }

        public static CardFormat Get_HZYTH_全部信息_扫码()
        {
            //异步弹出刷码提示框
            try
            {
                SysPublic.showLoading("等待用户扫码......", "请刷码");
                CardFormat hzythIc = Get_HZYTH_全部信息(ICReader.enum_读卡方式.扫码获取卡片基本信息_无须PIN验证_1115, string.Empty);
                if (hzythIc.QuDaoDaiMa == "05")
                {
                    //医保电子凭证，需要获取电子凭证信息
                    hzythIc.DianZiPzxx = new ICReader().GetDzpzInfo(hzythIc.ErWeiMaId);
                    if (!hzythIc.DianZiPzxx.InsuArea.StartsWith("3301"))
                    {
                        hzythIc.CanBaoDiXzqhdm = hzythIc.DianZiPzxx.InsuArea;
                    }
                }
                System.Windows.Forms.Application.DoEvents();
                return hzythIc;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                SysPublic.hideLoading();
            }
        }

        public static DzpzInfo GetDzpzInfo(string token)
        {
            return new ICReader().GetDzpzInfo(token);
        }
    }
}